This invention relates to an improved method of displaying characters, with particular advantage when used to display Chinese and Japanese kanji characters. Such display may be on a cathode ray tube (CRT) display or on a printed page. Display of English alphanumeric characters is much less of a problem because, for the most part, alphanumeric characters are made up of few strokes, and mainly strokes of the same width. With kanji characters, on the other hand, each character requires many more strokes and the width of the strokes also varies, as does the width of the spaces between the strokes. Moreover, these variations occur in both the horizontal and in the vertical direction.
The problem in displaying kanji characters is that displays are limited to a fixed pixel grid. This is true both for bit-mapped CRT displays and for raster printers which store the characters to be printed in a raster memory, which is equivalent to a bit-mapped display. The original character is usually designed on a fixed grid and thus all stroke borders precisely fit the grid. This original grid, called "character space", is usually much larger than the space on the display device on which the character ultimately will be displayed, since many characters are displayed on a screen or page simultaneously. Thus much more detail can be contained in the original character definition. However, this fixed character design must then be translated to fit the available number of pixels on the display device which will be allocated to that character. A single character is usually only a tiny fraction of the display space of the display device.
If the character to be displayed, once reduced to the display grid, happens by chance to fit the grid of pixels perfectly, there is no problem. However, where character stroke edges end within a line of pixels, a decision must be made either to include that entire line or to exclude it. Techniques used in the past for making that determination are called outline phase control, which is a kind of rounding technique used to determine whether or not to include a line of pixels for the line to be displayed, or to exclude it. With kanji characters, since this decision is made automatically, what often happens is that one vertical or horizontal stroke boundary is rounded upwardly, making a slightly wider line, and another nearby line, parallel to the first, may be rounded downwardly, making a slightly narrower line. When displayed, the difference between these two lines viewed next to each other can be noticeable.
The original design of the character on a fixed grid, however, often has slight differences between these widths of character stems. The spaces between these stems also vary somewhat. Then the character is converted to display space, creating non-integral boundaries which don't it the pixel grid. If stem widths and the spaces between them are rounded randomly the displayed character won't look like the original character design.
The prior art dealt with this problem as set forth in U.S. Pat. No. 4,785,391. The technique of that patent employs a system of pixel assignment within hierarchical zones. The system looks at the first zone and assigns a certain number of pixels to that zone. Then that zone is divided into two or more zones, and the originally allocated number of pixels is divided between the two or more zones. Then, hierarchically, each of these two or more zones are each divided into two or more subzones and each of the subzones assigned a number of pixels. The total number of pixels in any group of subzones must add up to the number in the zone from which they were divided.
The problem which had to be solved by this prior art technique is that, in the design of a kanji character, certain subzones, or sub-sub-zones had to look like other sub- or sub-sub-zones of the character. These "look-alike" zones had to be identified initially. Then, in the subdivision process, the identity of these predetermined look-alikes has to be retained so that the same number of pixels would be used for the look-alike zones or subzones. This equating process had to be propagated up and down the subdivision tree. Accordingly, this hierarchy of zones, subzones and predetermined equality had to be built into the original algorithmic description of each character.
The first problem with this prior art approach is in the need to generate the hierarchy in the first place. With alphanumeric characters, this wasn't a big problem since there are essentially only 36 characters (plus symbols), in comparison to kanji which has more than 7000 regularly used, very complex characters. The character designer must laboriously construct the hierarchy for each of these 7000 kanji characters. And most kanji characters are much more complicated than any alphanumeric character. Even assuming that an algorithm could be developed to do some of this hierarchy development by computer, the character designer still will need to look at each character manually to check visual consistency, and much manual work is still necessary. Further, all this hierarchical information must be stored along with the character outline, using up considerable extra quantities of scarce memory space, particularly when there already are 7000 character designs to be stored.
Moreover, using the prior art hierarchical technique for kanji is much more difficult than for alphanumeric characters. Alphanumeric characters lend themselves to being subdivided into a single hierarchy of zones for the vertical direction and another for the horizontal direction. Kanji characters, however, do not readily lend themselves to such division, often requiring multiple vertical or horizontal hierarchies of zones for proper definition. The prior art algorithm is much more difficult to apply in cases of multiple hierarchical zones, and in some cases, it will fail.